package a.j.a;

import a.a.kb;
import a.c.*;
import a.c.e;
import a.c.k;
import a.c.s;
import a.i.p;
import a.j.g;

import java.util.*;

public class j
{
  private static final Collection a = new ArrayList();
  private Map b = new WeakHashMap();
  private Map c = new WeakHashMap();
  private Map d = new WeakHashMap();
  private c_ f;
  private u g;
  private s h;
  private Vector i;
  private m j;
  private a.c.q k;
  private Map l;
  private Map m;
  private x n;
  private x o;
  private e p;
  private int q;
  private k r = new n_();
  private k s = new o_();
  private k t = new m_();
  public static boolean u;
  public static int v;
  
  public j(a.c.q paramq)
  {
    this(paramq, new a());
  }
  
  public j(a.c.q paramq, s params)
  {
    this.f = new c_(paramq, null);
    this.b.put(paramq, this.f);
    this.g = new e_();
    this.i = new Vector();
    this.h = params;
    this.j = new d();
    if (i1 == 0)
    {
      if ((paramq instanceof g))
      {
        ((g)paramq).a(this);
        if (i1 != 0) {
          break label351;
        }
      }
    }
    else
    {
      if (!bool) {
        break label227;
      }
      if (i1 == 0) {}
      a.c.q.n = !a.c.q.n;
    }
    synchronized (a)
    {
      a.add(this);
    }
    label227:
    this.k = new a.c.q();
    this.l = new WeakHashMap();
    this.m = new WeakHashMap();
    this.n = this.k.B();
    this.o = this.k.B();
    this.p = this.k.i();
    this.l.put(paramq, this.p);
    this.m.put(null, this.p);
    this.q = 0;
    this.k.a(new u()
    {
      public void a(cb paramAnonymouscb)
      {
        if (j.v == 0) {}
        switch (paramAnonymouscb.a())
        {
        case 0: 
        case 1: 
        case 3: 
        case 5: 
        case 6: 
        case 7: 
        case 9: 
        case 10: 
        case 11: 
          j.access$004(j.this);
        }
      }
    });
    paramq.a(this.g);
    label351:
    ??? = paramq.v();
    do
    {
      if (!((w)???).e()) {
        break;
      }
      e locale1 = ((w)???).d();
      e locale2 = (e)this.l.get(paramq);
      e locale3 = this.k.i();
      this.m.put(locale1, locale3);
      this.n.a(locale3, locale1);
      this.k.a(locale3, locale2);
      ((w)???).f();
    } while (!bool);
    if (i1 != 0) {
      a.c.q.o = !a.c.q.o;
    }
  }
  
  public static j a(a.c.q paramq)
  {
    int i1 = v;
    if ((i1 != 0) || ((paramq instanceof g))) {
      return ((g)paramq).K();
    }
    synchronized (a)
    {
      Iterator localIterator = a.iterator();
      while (localIterator.hasNext())
      {
        j localj = (j)localIterator.next();
        if (localj.e(paramq)) {
          return localj;
        }
      }
    }
    return null;
  }
  
  public void a()
  {
    int i1 = v;
    a.c.q localq = j();
    localq.b(this.g);
    if ((i1 != 0) || ((localq instanceof g)))
    {
      g localg = (g)localq;
      if ((i1 != 0) || (localg.K() == this))
      {
        localg.a(null);
        if (!u) {}
      }
    }
    else
    {
      synchronized (a)
      {
        a.remove(this);
      }
    }
  }
  
  public e a(e parame)
  {
    int i1 = v;
    boolean bool = u;
    a.c.q localq1 = null;
    if (parame == null) {
      localq1 = j();
    } else if ((i1 != 0) || (l(parame))) {
      localq1 = o(parame);
    } else {
      localq1 = parame.g();
    }
    a.c.q localq2 = i(localq1);
    if ((i1 != 0) || ((localq2 instanceof g))) {
      ((g)localq2).a(this);
    }
    e locale1 = this.h.a(localq1, localq2);
    a(new q(this, (byte)6, localq1, locale1));
    c_ localc_ = new c_(localq2, locale1);
    this.b.put(localq2, localc_);
    this.d.put(locale1, localc_);
    e locale2 = (e)this.m.get(locale1);
    this.l.put(localq2, locale2);
    a(new q(this, (byte)4, localq1, locale1));
    if (i1 == 0) {
      if (m(parame)) {
        c(new bb(locale1), parame);
      }
    }
    this.k.a(locale2.h(), null, locale2.h().f().i(), 0, 1);
    if ((i1 != 0) || (a.c.q.n))
    {
      if (i1 == 0) {}
      u = !bool;
    }
    if (a.c.q.o) {
      v = ++i1;
    }
    return locale1;
  }
  
  public e b(a.c.q paramq)
  {
    return a(f(paramq));
  }
  
  public void b(e parame)
  {
    if (l(parame)) {
      parame.g().a(parame);
    }
  }
  
  public e c(e parame)
  {
    int i1 = v;
    a.c.q localq = null;
    if (parame == null) {
      localq = j();
    } else if ((i1 != 0) || (l(parame))) {
      localq = o(parame);
    } else {
      localq = parame.g();
    }
    e locale = this.h.a(localq, parame);
    e(locale);
    if ((i1 != 0) || (m(parame))) {
      c(new bb(locale), parame);
    }
    return locale;
  }
  
  public void d(e parame)
  {
    int i1 = v;
    boolean bool = u;
    if (m(parame))
    {
      a.c.q localq = parame.g();
      bb localbb = new bb();
      a(parame, new l_()
      {
        private final bb val$nodesToBeRemoved;
        
        public void a(e paramAnonymouse)
        {
          this.val$nodesToBeRemoved.add(paramAnonymouse);
        }
      });
      Iterator localIterator = localbb.iterator();
      do
      {
        do
        {
          e locale;
          do
          {
            if (!localIterator.hasNext()) {
              break;
            }
            locale = (e)localIterator.next();
          } while (locale.g() != localq);
          localq.a(locale);
          if ((i1 != 0) || ((i1 == 0) && (bool))) {
            return;
          }
        } while (i1 != 0);
      } while (!bool);
      localq.a(parame);
    }
  }
  
  public e c(a.c.q paramq)
  {
    return c(f(paramq));
  }
  
  public void e(e parame)
  {
    int i1 = v;
    a.c.q localq = parame.g();
    bb localbb = null;
    boolean bool = l(parame);
    if (bool)
    {
      localbb = new bb(o(parame).v());
      a(o(parame), localbb);
      i(parame);
    }
    a(new q(this, (byte)6, parame.g(), parame));
    e locale = (e)this.m.get(parame);
    if (i1 == 0)
    {
      if (!this.o.getBool(locale)) {
        this.o.a(locale, true);
      }
      a(new q(this, (byte)4, localq, parame));
      if (i1 != 0) {}
    }
    else
    {
      if (bool) {
        c(localbb, parame);
      }
      this.k.a(locale.h(), null, locale.h().f().i(), 0, 1);
    }
  }
  
  public a.c.d a(e parame1, e parame2)
  {
    int i1 = v;
    a.c.q localq1 = parame1.g();
    a.c.q localq2 = parame2.g();
    if ((i1 != 0) || (localq1 != null))
    {
      if (i1 != 0) {
        break label46;
      }
      if (localq2 != null) {}
    }
    else
    {
      throw new IllegalArgumentException("Not all endpoints lie in a graph.");
    }
    label46:
    if (i1 == 0) {
      if (localq1 == localq2) {
        return localq1.a(parame1, parame2);
      }
    }
    a.c.q localq3 = c(localq1, localq2);
    if (localq3 == null) {
      throw new IllegalArgumentException("No common ancestor found.");
    }
    e locale1 = a(parame1, localq3);
    e locale2 = a(parame2, localq3);
    a.c.d locald = localq3.a(locale1, locale2);
    b(locald, parame1, parame2);
    return locald;
  }
  
  public void a(a.c.d paramd, e parame1, e parame2)
  {
    int i1 = v;
    boolean bool = u;
    a.c.q localq1 = paramd.c();
    if (i1 == 0) {
      if ((localq1 != null) && (!e(localq1))) {
        throw new IllegalArgumentException("Edge not in graph hierarchy.");
      }
    }
    a.c.q localq2 = parame1.g();
    a.c.q localq3 = parame2.g();
    if ((i1 != 0) || ((localq2 == null) || (localq3 == null))) {
      throw new IllegalArgumentException("Not all endpoints lie in a graph.");
    }
    label149:
    a.c.q localq4;
    Object localObject;
    e locale1;
    if (e(paramd))
    {
      if (i1 == 0) {
        if (localq2 == localq3)
        {
          a(localq2, localq1);
          a(paramd);
          a(localq1, localq2, paramd, parame1, parame2);
          if (i1 != 0) {
            break label149;
          }
          b(localq1, localq2);
          if (!bool) {
            return;
          }
        }
      }
      localq4 = c(localq2, localq3);
      if (i1 == 0)
      {
        if (localq4 == null) {
          throw new IllegalArgumentException("No common ancestor found.");
        }
        a(localq4, localq1);
      }
      localObject = f(paramd);
      locale1 = a(parame1, localq4);
      e locale2 = a(parame2, localq4);
      a(paramd);
      a(localq1, localq4, paramd, locale1, locale2);
      ((f_)localObject).a = parame1;
      ((f_)localObject).b = parame2;
      a(paramd, (byte)7);
      this.c.put(paramd, localObject);
      a(paramd, (byte)5);
      b(localq1, localq4);
      if (!bool) {}
    }
    else
    {
      if (i1 == 0) {
        if (localq2 == localq3)
        {
          a(localq2, localq1);
          a(localq1, localq2, paramd, parame1, parame2);
          if (i1 != 0) {
            break label330;
          }
          b(localq1, localq2);
          if (!bool) {
            return;
          }
        }
      }
      label330:
      localq4 = c(localq2, localq3);
      if (i1 == 0)
      {
        if (localq4 == null) {
          throw new IllegalArgumentException("No common ancestor found.");
        }
        a(localq4, localq1);
      }
      localObject = a(parame1, localq4);
      locale1 = a(parame2, localq4);
      a(localq1, localq4, paramd, (e)localObject, locale1);
      b(paramd, parame1, parame2);
      b(localq1, localq4);
    }
  }
  
  private void a(a.c.q paramq1, a.c.q paramq2, a.c.d paramd, e parame1, e parame2)
  {
    int i1 = v;
    if (i1 == 0)
    {
      if (paramq1 != paramq2)
      {
        if (i1 != 0) {
          break label39;
        }
        if (paramq1 != null) {
          paramq1.a(paramd);
        }
      }
      paramq2.a(paramd, parame1, parame2);
    }
    label39:
    if ((i1 != 0) || (paramq1 != paramq2)) {
      if ((i1 != 0) || (paramq1 != null)) {
        paramq2.d(paramd);
      }
    }
  }
  
  private void a(a.c.q paramq1, a.c.q paramq2)
  {
    int i1 = v;
    if (i1 == 0) {
      if (paramq1 != null) {
        paramq1.z();
      }
    }
    if ((i1 != 0) || (paramq2 != null)) {
      paramq2.z();
    }
  }
  
  private void b(a.c.q paramq1, a.c.q paramq2)
  {
    int i1 = v;
    if (i1 == 0) {
      if (paramq1 != null) {
        paramq1.A();
      }
    }
    if ((i1 != 0) || (paramq2 != null)) {
      paramq2.A();
    }
  }
  
  private void a(a.c.d paramd, byte paramByte)
  {
    a(new q(this, paramByte, paramd.c(), paramd));
  }
  
  public e a(e parame, a.c.q paramq)
  {
    int i1 = v;
    boolean bool = u;
    if (i1 == 0) {
      if (parame.g() == paramq) {
        return parame;
      }
    }
    try
    {
      e locale;
      do
      {
        for (locale = f(parame.g()); !bool; locale = f(locale.g()))
        {
          if (locale == null) {
            break;
          }
          if (bool) {
            break label71;
          }
          if (locale.g() == paramq) {
            break;
          }
        }
      } while (i1 != 0);
      label71:
      return locale;
    }
    catch (RuntimeException localRuntimeException)
    {
      throw new IllegalArgumentException("No representative of v in inGraph.");
    }
  }
  
  public void f(e parame)
  {
    b(parame, i(parame.g()));
  }
  
  public void b(e parame, a.c.q paramq)
  {
    int i1 = v;
    a.c.q localq = parame.g();
    localq.z();
    boolean bool = m(parame);
    a(new q(this, (byte)6, localq, parame));
    if ((i1 != 0) || ((paramq instanceof g))) {
      ((g)paramq).a(this);
    }
    c_ localc_ = new c_(paramq, parame);
    this.b.put(paramq, localc_);
    this.d.put(parame, localc_);
    e locale = (e)this.m.get(parame);
    this.l.put(paramq, locale);
    if (i1 == 0)
    {
      if (bool) {
        this.o.a(locale, false);
      }
      a(new q(this, (byte)4, localq, parame));
      this.k.a(locale.h(), null, locale.h().f().i(), 0, 1);
      localq.A();
    }
  }
  
  public void g(e parame)
  {
    a.c.q localq = parame.g();
    localq.z();
    bb localbb = new bb(r(parame));
    b(localbb);
    f(parame);
    a(localbb, parame);
    localq.A();
  }
  
  public void h(e parame)
  {
    a.c.q localq = parame.g();
    localq.z();
    bb localbb = new bb(o(parame).v());
    a(o(parame), localbb);
    e(parame);
    c(localbb, parame);
    localq.A();
  }
  
  public void i(e parame)
  {
    int i1 = v;
    boolean bool = u;
    a.c.q localq = parame.g();
    a(new q(this, (byte)6, localq, parame));
    if (i1 == 0) {
      if (l(parame))
      {
        this.b.remove(u(parame).d());
        localObject = u(parame).d();
        if (i1 == 0)
        {
          if ((localObject instanceof g)) {
            ((g)localObject).a(null);
          }
          if (i1 != 0) {
            break label168;
          }
          this.d.remove(parame);
        }
        if (!bool) {
          break label167;
        }
      }
    }
    if ((i1 != 0) || (m(parame)))
    {
      localObject = this.m.get(parame);
      if (i1 != 0) {
        break label168;
      }
      this.o.a(localObject, false);
      if (!bool) {}
    }
    else
    {
      throw new IllegalArgumentException("convertToNode. Node is already normal");
    }
    label167:
    label168:
    Object localObject = w(parame);
    this.k.a(((e)localObject).h(), null, ((e)localObject).h().f().k(), 0, 0);
    a(new q(this, (byte)4, localq, parame));
  }
  
  public void b(a.c.d paramd, e parame1, e parame2)
  {
    a(paramd, (byte)7);
    this.c.put(paramd, new f_(parame1, parame2));
    a(paramd, (byte)5);
  }
  
  public void a(a.c.d paramd)
  {
    a(paramd, (byte)7);
    this.c.remove(paramd);
    a(paramd, (byte)5);
  }
  
  public void a(s params)
  {
    this.h = params;
  }
  
  public s b()
  {
    return this.h;
  }
  
  public m c()
  {
    return this.j;
  }
  
  public void a(m paramm)
  {
    this.j = paramm;
  }
  
  public void a(l_ paraml_)
  {
    b(this.p, paraml_);
  }
  
  public void a(e parame, l_ paraml_)
  {
    b(w(parame), paraml_);
  }
  
  private void b(e parame, l_ paraml_)
  {
    int i1 = v;
    boolean bool = u;
    a.c.d locald = parame.i();
    do
    {
      if (locald == null) {
        break;
      }
      e locale1 = locald.e();
      e locale2 = (e)this.n.get(locale1);
      paraml_.a(locale2);
      if (i1 == 0)
      {
        if (locale1.d() > 0)
        {
          if (i1 != 0) {
            continue;
          }
          if (!l(locale2)) {
            b(locale1, paraml_);
          }
        }
        locald = locald.j();
      }
    } while (!bool);
  }
  
  public void b(l_ paraml_)
  {
    d(this.p, paraml_);
  }
  
  public void c(e parame, l_ paraml_)
  {
    d(w(parame), paraml_);
  }
  
  private void d(e parame, l_ paraml_)
  {
    int i1 = v;
    boolean bool = u;
    a.c.d locald = parame.k();
    do
    {
      if (locald == null) {
        break;
      }
      e locale1 = locald.e();
      e locale2 = (e)this.n.get(locale1);
      if (i1 == 0)
      {
        if (locale1.d() > 0)
        {
          if (i1 != 0) {
            continue;
          }
          if (!l(locale2)) {
            d(locale1, paraml_);
          }
        }
        paraml_.a(locale2);
        locald = locald.l();
      }
    } while (!bool);
  }
  
  public Iterator d()
  {
    return new j_(this.p);
  }
  
  public Iterator j(e parame)
  {
    return new j_(w(parame));
  }
  
  public Iterator e()
  {
    return new i_(this.p);
  }
  
  public Iterator k(e parame)
  {
    return new i_(w(parame));
  }
  
  public k f()
  {
    return this.r;
  }
  
  public k g()
  {
    return this.s;
  }
  
  public k h()
  {
    return this.t;
  }
  
  public static boolean d(a.c.q paramq)
  {
    boolean bool = u;
    j localj = a(paramq);
    if (localj != null)
    {
      w localw = paramq.v();
      do
      {
        if (!localw.e()) {
          break;
        }
        if (bool) {
          break label57;
        }
        if (localj.m(localw.d())) {
          return true;
        }
        localw.f();
      } while (!bool);
    }
    label57:
    return false;
  }
  
  public e b(a.c.d paramd)
  {
    return f(paramd).a();
  }
  
  public e c(a.c.d paramd)
  {
    return f(paramd).c();
  }
  
  public boolean e(a.c.q paramq)
  {
    return k(paramq) != null;
  }
  
  public k_ d(a.c.d paramd)
  {
    f_ localf_ = f(paramd);
    return localf_ == null ? null : new g_(localf_);
  }
  
  public boolean e(a.c.d paramd)
  {
    return this.c.get(paramd) != null;
  }
  
  public boolean l(e parame)
  {
    return this.d.get(parame) != null;
  }
  
  public boolean m(e parame)
  {
    return this.o.getBool(this.m.get(parame));
  }
  
  public boolean n(e parame)
  {
    return (v != 0) || ((!this.o.getBool(this.m.get(parame))) && (this.d.get(parame) == null));
  }
  
  public boolean i()
  {
    int i1 = v;
    boolean bool = u;
    do
    {
      w localw = this.k.v();
      while (!bool)
      {
        if (!localw.e()) {
          break;
        }
        if (bool) {
          break label64;
        }
        if (this.o.getBool(localw.d())) {
          return true;
        }
        localw.f();
      }
    } while (i1 != 0);
    label64:
    return false;
  }
  
  public a.c.q o(e parame)
  {
    c_ localc_ = u(parame);
    if (v == 0) {
      if (localc_ != null) {
        return localc_.d();
      }
    }
    return this.f.d();
  }
  
  public e f(a.c.q paramq)
  {
    return (e)this.n.get(this.l.get(paramq));
  }
  
  public e p(e parame)
  {
    e locale1 = (e)this.m.get(parame);
    e locale2 = locale1.h().f();
    return (e)this.n.get(locale2);
  }
  
  public boolean b(e parame1, e parame2)
  {
    int i1 = v;
    boolean bool = u;
    if (i1 == 0) {
      if (parame1 == null) {
        return true;
      }
    }
    Object localObject = this.m.get(parame1);
    e locale = (e)this.m.get(parame2);
    if (locale != this.p)
    {
      if (localObject == locale) {
        return true;
      }
      locale = locale.h().f();
    }
    while (i1 != 0) {
      if (!bool) {
        break;
      }
    }
    return false;
  }
  
  public a.c.q g(a.c.q paramq)
  {
    return k(paramq).a();
  }
  
  public a.c.q j()
  {
    return this.f.a;
  }
  
  public boolean h(a.c.q paramq)
  {
    return this.f.a == paramq;
  }
  
  public Object[] a(Object paramObject)
  {
    int i1 = v;
    boolean bool = u;
    z localz = new z();
    if (i1 == 0)
    {
      if ((paramObject instanceof e))
      {
        if (i1 != 0) {
          break label80;
        }
        paramObject = ((e)paramObject).g();
        if (!bool) {}
      }
      else
      {
        if (i1 != 0) {
          break label80;
        }
      }
    }
    else if (!(paramObject instanceof a.c.q)) {
      throw new IllegalArgumentException("argument neither instance of Graph nor of Node.");
    }
    label80:
    e locale = (e)this.l.get(paramObject);
    if (locale != this.p)
    {
      if (i1 != 0) {}
    }
    else
    {
      while (i1 != 0)
      {
        localz.c(this.n.get(locale));
        locale = locale.h().f();
        if (bool) {
          break label144;
        }
        if (!bool) {
          break;
        }
      }
      localz.c(j());
    }
    label144:
    return localz.toArray();
  }
  
  public Object[] b(Object paramObject)
  {
    return a(paramObject, false);
  }
  
  public Object[] a(Object paramObject, boolean paramBoolean)
  {
    int i1 = v;
    boolean bool = u;
    z localz = new z();
    if (i1 == 0) {
      if ((paramObject instanceof a.c.q))
      {
        locale = (e)this.l.get(paramObject);
        if (i1 != 0) {
          break label71;
        }
        if (!bool) {
          break label94;
        }
      }
    }
    e locale = (e)this.m.get(paramObject);
    if (!paramBoolean)
    {
      label71:
      if (i1 != 0) {
        break label96;
      }
      if (locale != null) {
        locale = locale.h().f();
      }
    }
    label94:
    label96:
    if (locale != this.p) {
      if (i1 == 0) {
        if (locale == null) {
          break label144;
        }
      }
    }
    label144:
    do
    {
      localz.c(this.n.get(locale));
      locale = locale.h().f();
      if (!bool) {
        break;
      }
      localz.c(j());
    } while (i1 != 0);
    return localz.toArray();
  }
  
  public e a(bb parambb)
  {
    int i1 = v;
    boolean bool = u;
    bb localbb = new bb();
    w localw = parambb.l();
    do
    {
      if (!localw.e()) {
        break;
      }
      localbb.add(this.m.get(localw.d()));
      if (i1 == 0)
      {
        if (bool) {
          break label100;
        }
        localw.f();
      }
    } while (!bool);
    if (i1 == 0) {}
    label100:
    return (e)this.n.get(kb.a(this.k, this.p, false, localbb));
  }
  
  public a.c.q c(a.c.q paramq1, a.c.q paramq2)
  {
    int i2 = v;
    boolean bool = u;
    a.c.q localq = j();
    if (i2 == 0)
    {
      if (paramq1 == paramq2) {
        return paramq1;
      }
      if (i2 != 0) {}
    }
    else if (paramq1 != localq)
    {
      if ((i2 == 0) && (paramq2 != localq)) {
        break label49;
      }
    }
    return localq;
    label49:
    z localz = new z();
    c_ localc_ = k(paramq1);
    if (localc_ == null) {
      return localq;
    }
    localz.c(paramq1);
    Object localObject1;
    do
    {
      do
      {
        if (localc_.c == null) {
          break;
        }
        localObject1 = localc_.c.g();
        if (i2 == 0)
        {
          if (localObject1 == paramq2) {
            return paramq2;
          }
          localz.c(localObject1);
          localc_ = localc_.b();
        }
      } while (!bool);
      localObject1 = new z();
      localc_ = k(paramq2);
    } while (i2 != 0);
    if (localc_ == null) {
      return localq;
    }
    ((z)localObject1).c(paramq2);
    do
    {
      if (localc_.c == null) {
        break;
      }
      localObject2 = localc_.c.g();
      if (i2 == 0)
      {
        if (localObject2 == paramq1) {
          return paramq1;
        }
        ((z)localObject1).c(localObject2);
        localc_ = localc_.b();
      }
    } while (!bool);
    Object localObject2 = localz.toArray();
    Object[] arrayOfObject = ((z)localObject1).toArray();
    int i1 = 0;
    do
    {
      if (i1 >= localObject2.length) {
        break;
      }
      if ((i2 == 0) && (bool)) {
        break label287;
      }
      if (i1 >= arrayOfObject.length) {
        break;
      }
      if (localObject2[i1] != arrayOfObject[i1]) {
        break;
      }
      i1++;
    } while (!bool);
    if ((i2 == 0) && (i1 == 0)) {
      label287:
      return localq;
    }
    return (a.c.q)localObject2[(i1 - 1)];
  }
  
  public bb a(a.c.q paramq, boolean paramBoolean)
  {
    bb localbb = new bb();
    a(paramq, localbb, paramBoolean);
    return localbb;
  }
  
  private void a(a.c.q paramq, bb parambb, boolean paramBoolean)
  {
    int i1 = v;
    boolean bool = u;
    List localList = j(paramq);
    if (i1 == 0)
    {
      parambb.addAll(localList);
      if (!paramBoolean) {}
    }
    else
    {
      Iterator localIterator = localList.iterator();
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        e locale = (e)localIterator.next();
        a(u(locale).d(), parambb, true);
      } while (!bool);
    }
  }
  
  public int q(e parame)
  {
    int i2 = v;
    boolean bool = u;
    e locale = w(parame);
    int i1 = 0;
    do
    {
      for (locale = x(locale); !bool; locale = x(locale))
      {
        if (locale == this.p) {
          break;
        }
        if (bool) {
          break label69;
        }
        if (l(v(locale))) {
          break;
        }
        i1++;
      }
    } while (i2 != 0);
    label69:
    return i1;
  }
  
  public w r(e parame)
  {
    return new d_((e)this.m.get(parame));
  }
  
  public void a(i parami)
  {
    this.i.add(parami);
  }
  
  public void b(i parami)
  {
    this.i.remove(parami);
  }
  
  public Iterator k()
  {
    return this.i.iterator();
  }
  
  protected void a(q paramq)
  {
    int i2 = v;
    boolean bool = u;
    if ((i2 != 0) || (!this.i.isEmpty()))
    {
      i[] arrayOfi = new i[this.i.size()];
      this.i.toArray(arrayOfi);
      int i1 = 0;
      do
      {
        if (i1 >= arrayOfi.length) {
          break;
        }
        arrayOfi[i1].a(paramq);
        i1++;
      } while (!bool);
    }
  }
  
  public void s(e parame)
  {
    e locale = w(parame);
    a.c.d locald = x(locale).i();
    if (locald != locale.h()) {
      this.k.a(locale.h(), null, locald, 0, 1);
    }
  }
  
  public void t(e parame)
  {
    e locale = w(parame);
    a.c.d locald = x(locale).k();
    if (locald != locale.h()) {
      this.k.a(locale.h(), null, locald, 0, 0);
    }
  }
  
  public void a(bb parambb, e parame)
  {
    int i1 = v;
    boolean bool = u;
    if (parambb.isEmpty()) {
      return;
    }
    a.c.q localq1 = parame.g();
    localq1.z();
    c_ localc_ = u(parame);
    a.c.q localq2 = localc_.d();
    f(parambb, p(parame));
    parambb = c(parambb);
    ab localab = localq1.a(parambb, localq2);
    a.c.m localm = localab.l();
    label176:
    label347:
    label352:
    label508:
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald = localm.a();
      f_ localf_ = f(locald);
      if (bool) {
        return;
      }
      if (i1 == 0)
      {
        if (locald.e() != parame) {
          if (i1 != 0) {
            break label513;
          }
        }
      }
      else {
        if (locald.f() != parame) {
          break label508;
        }
      }
      if ((i1 != 0) || (localf_ != null))
      {
        if (i1 != 0) {
          break label176;
        }
        if (localf_.a != parame)
        {
          if (i1 != 0) {
            break label352;
          }
          if (localf_.b != parame) {
            break label347;
          }
        }
      }
      Object localObject = locald.e();
      e locale1 = locald.f();
      if (i1 == 0)
      {
        if (locald.e() == parame)
        {
          localq1.a(locald, locald.e(), parame);
          localq1.d(locald);
          if (i1 == 0)
          {
            g(locald);
            if (localf_ == null) {
              b(locald, (e)localObject, locale1);
            }
          }
          a(locald, localf_ != null, (e)localObject, locale1);
          if (i1 != 0) {
            continue;
          }
          if (!bool) {
            break label635;
          }
        }
        localq1.a(locald, parame, locald.f());
        localq1.d(locald);
        if (i1 == 0) {
          g(locald);
        }
      }
      else if (localf_ == null)
      {
        b(locald, (e)localObject, locale1);
      }
      a(locald, localf_ != null, (e)localObject, locale1);
      if (i1 == 0)
      {
        if (bool)
        {
          locale1 = locald.e();
          e locale2 = locald.f();
          if (locald.e() == parame)
          {
            localObject = localc_.a(localf_.a());
            localc_.a.a(locald, ((bb)localObject).m(), locald.f());
            localc_.a.d(locald);
            g(locald);
            a(locald, true, locale1, locale2);
            if (i1 != 0) {
              continue;
            }
            if (!bool) {}
          }
          else
          {
            localObject = localc_.a(localf_.c());
            localc_.a.a(locald, locald.e(), ((bb)localObject).m());
            localc_.a.d(locald);
            g(locald);
            a(locald, true, locale1, locale2);
            if (i1 != 0) {
              continue;
            }
            if (bool)
            {
              localObject = locald.e();
              locale1 = locald.f();
              if (i1 == 0)
              {
                if (((e)localObject).g() != localq1)
                {
                  localq1.a(locald, parame, locale1);
                  localq1.d(locald);
                  g(locald);
                  if (i1 == 0) {
                    if (!bool) {
                      break label588;
                    }
                  }
                }
                else
                {
                  localq1.a(locald, (e)localObject, parame);
                }
              }
              else {
                localq1.d(locald);
              }
              g(locald);
              if (localf_ == null)
              {
                b(locald, (e)localObject, locale1);
                a(locald, false, (e)localObject, locale1);
                if (i1 != 0) {
                  continue;
                }
                if (!bool) {}
              }
              else
              {
                a(locald, true, (e)localObject, locale1);
              }
            }
          }
        }
        localm.f();
      }
    } while (!bool);
    label513:
    label588:
    label635:
    if (i1 == 0) {
      localq1.A();
    }
  }
  
  public void a(a.c.q paramq, bb parambb)
  {
    int i1 = v;
    boolean bool = u;
    if (parambb.isEmpty()) {
      return;
    }
    c_ localc_1 = k(paramq);
    c_ localc_2 = localc_1.b();
    a.c.q localq = localc_2.d();
    localq.z();
    parambb = c(parambb);
    e locale1 = localc_1.e();
    ab localab = paramq.a(parambb, localq);
    a.c.m localm = new ab(locale1.l()).l();
    a.c.d locald;
    e locale2;
    e locale3;
    label227:
    do
    {
      do
      {
        if (!localm.e()) {
          break;
        }
        locald = localm.a();
        if (bool) {
          break label351;
        }
        if (e(locald))
        {
          locale2 = locald.e();
          locale3 = locald.f();
          f_ localf_;
          Object localObject;
          if (i1 == 0) {
            if (locale2 == locale1)
            {
              localf_ = f(locald);
              localObject = localc_2.a(localf_.a());
              e locale4 = ((bb)localObject).m();
              if (i1 != 0) {
                break label227;
              }
              if (locale4 != locale1)
              {
                localq.a(locald);
                localq.a(locald, locale4, locald.f());
                localq.d(locald);
                g(locald);
                a(locald, true, locale2, locale3);
              }
            }
          }
          if (locale3 == locale1)
          {
            localf_ = f(locald);
            if (i1 != 0) {
              continue;
            }
            if (localf_ != null)
            {
              localObject = localc_2.a(localf_.c()).m();
              if (i1 != 0) {
                continue;
              }
              if (localObject != locale1)
              {
                localq.a(locald);
                localq.a(locald, locald.e(), (e)localObject);
                localq.d(locald);
                g(locald);
                a(locald, true, locale2, locale3);
              }
            }
          }
        }
        localm.f();
      } while (!bool);
    } while (i1 != 0);
    localm = localab.l();
    label351:
    do
    {
      if (!localm.e()) {
        break;
      }
      locald = localm.a();
      locale2 = locald.e();
      locale3 = locald.f();
      if (i1 != 0) {
        return;
      }
      if (bool) {
        break label548;
      }
      if (i1 == 0)
      {
        if (locald.e().g() == paramq)
        {
          localq.a(locald, locale1, locald.f());
          localq.d(locald);
          a(locald, locale2, locale3, locale1, locald.f());
          a(locald, true, locale2, locale3);
          if (i1 != 0) {
            continue;
          }
          if (!bool) {
            break label529;
          }
        }
        if (i1 != 0) {}
      }
      else
      {
        if (locald.f().g() != paramq) {
          break label529;
        }
        localq.a(locald, locald.e(), locale1);
      }
      localq.d(locald);
      a(locald, locale2, locale3, locald.e(), locale1);
      a(locald, true, locale2, locale3);
      localm.f();
    } while (!bool);
    label529:
    if (i1 == 0) {
      label548:
      localq.A();
    }
  }
  
  public void b(bb parambb, e parame)
  {
    int i1 = v;
    boolean bool = u;
    do
    {
      w localw = parambb.l();
      while (!bool)
      {
        if (!localw.e()) {
          break;
        }
        c(localw.d(), parame);
        localw.f();
      }
    } while (i1 != 0);
  }
  
  public void c(e parame1, e parame2)
  {
    int i2 = v;
    boolean bool = u;
    if (parame1 == parame2) {
      throw new IllegalArgumentException("node may not be identical to parentNode");
    }
    if (b(parame1, parame2)) {
      throw new IllegalArgumentException("node may not be an ancestor of parentNode");
    }
    a.c.q localq1 = (i2 != 0) || (l(parame2)) ? o(parame2) : parame2 == null ? j() : parame2.g();
    a.c.q localq2 = parame1.g();
    a.c.q localq3 = c(localq1, localq2);
    do
    {
      while (!bool)
      {
        if (localq2 == localq3) {
          break;
        }
        if (bool) {
          break label139;
        }
        a(localq2, new bb(parame1));
        localq2 = parame1.g();
      }
    } while (i2 != 0);
    label139:
    Object[] arrayOfObject = a(parame2, true);
    int i1 = 0;
    a.c.q localq4 = (a.c.q)arrayOfObject[(i1++)];
    e locale;
    do
    {
      do
      {
        if (localq4 == localq3) {
          break;
        }
        locale = (e)arrayOfObject[(i1++)];
      } while (!l(locale));
      if (i2 != 0) {
        break label296;
      }
      localq4 = o(locale);
      if (i2 != 0) {
        break label244;
      }
      if (bool) {
        break label289;
      }
    } while (!bool);
    label244:
    do
    {
      do
      {
        if (localq4 == localq1) {
          break;
        }
        locale = (e)arrayOfObject[(i1++)];
      } while (!l(locale));
      a(new bb(parame1), locale);
      localq4 = o(locale);
      if ((i2 != 0) || ((i2 == 0) && (bool))) {
        return;
      }
    } while (!bool);
    label289:
    if (i2 == 0) {
      label296:
      if (p(parame1) == parame2) {}
    } else {
      c(new bb(parame1), parame2);
    }
  }
  
  public void c(bb parambb, e parame)
  {
    if (!parambb.isEmpty()) {
      g(d(parambb), parame);
    }
  }
  
  public void b(bb parambb)
  {
    int i1 = v;
    boolean bool = u;
    if (i1 == 0)
    {
      if (parambb.isEmpty()) {
        return;
      }
      parambb = d(parambb);
    }
    bb localbb = new bb();
    Object localObject = p(parambb.m());
    w localw = parambb.l();
    do
    {
      do
      {
        if (!localw.e()) {
          break;
        }
        e locale1 = localw.d();
        e locale2 = p(locale1);
        if (bool) {
          return;
        }
        if ((locale2 != null) && (!l(locale2)))
        {
          if ((i1 != 0) || (locale2 != localObject))
          {
            if (i1 == 0) {
              if (localObject != null) {
                g(localbb, p((e)localObject));
              }
            }
            localObject = locale2;
            localbb = new bb();
          }
          localbb.add(locale1);
        }
        localw.f();
      } while (!bool);
    } while (i1 != 0);
    if (localbb.size() > 0) {
      c(localbb, p((e)localObject));
    }
  }
  
  private a.c.q i(a.c.q paramq)
  {
    return this.h.a(paramq);
  }
  
  private List j(a.c.q paramq)
  {
    int i1 = v;
    boolean bool = u;
    ArrayList localArrayList = new ArrayList(8);
    w localw = paramq.v();
    do
    {
      if (!localw.e()) {
        break;
      }
      e locale = localw.d();
      if (i1 == 0)
      {
        if (l(locale)) {
          localArrayList.add(locale);
        }
        localw.f();
      }
    } while (!bool);
    return localArrayList;
  }
  
  private c_ k(a.c.q paramq)
  {
    return (c_)this.b.get(paramq);
  }
  
  private c_ u(e parame)
  {
    return (c_)this.d.get(parame);
  }
  
  private f_ f(a.c.d paramd)
  {
    return (f_)this.c.get(paramd);
  }
  
  private e v(e parame)
  {
    return (e)this.n.get(parame);
  }
  
  private e w(e parame)
  {
    return (e)this.m.get(parame);
  }
  
  private e l(a.c.q paramq)
  {
    return (e)this.l.get(paramq);
  }
  
  private e x(e parame)
  {
    return parame.h().f();
  }
  
  private bb c(bb parambb)
  {
    int i1 = v;
    boolean bool = u;
    if (i1 == 0) {
      if (parambb.isEmpty()) {
        return parambb;
      }
    }
    bb localbb = new bb();
    a.c.q localq = parambb.m().g();
    boolean[] arrayOfBoolean = new boolean[localq.j()];
    Object localObject = parambb.l();
    do
    {
      do
      {
        if (!((w)localObject).e()) {
          break;
        }
        arrayOfBoolean[localObject.d().f()] = true;
        ((w)localObject).f();
        if (i1 != 0) {
          break label118;
        }
        if (bool) {
          break label111;
        }
      } while (!bool);
    } while (i1 != 0);
    localObject = parambb.l();
    label111:
    label118:
    do
    {
      while (!bool)
      {
        if (!((w)localObject).e()) {
          break;
        }
        if (i1 == 0)
        {
          if (m(((w)localObject).d()))
          {
            if (i1 != 0) {
              continue;
            }
            if (arrayOfBoolean[localObject.d().f()] != 0) {
              a(((w)localObject).d(), arrayOfBoolean, localbb);
            }
          }
          ((w)localObject).f();
        }
      }
    } while (i1 != 0);
    localObject = null;
    if (i1 == 0) {
      if (localbb.size() > 0)
      {
        localObject = new bb(parambb.l());
        ((bb)localObject).a(localbb);
        break label232;
      }
    }
    localObject = parambb;
    label232:
    return localObject;
  }
  
  private void a(e parame, boolean[] paramArrayOfBoolean, bb parambb)
  {
    int i1 = v;
    boolean bool = u;
    w localw = r(parame);
    do
    {
      if (!localw.e()) {
        break;
      }
      e locale = localw.d();
      if (i1 == 0) {
        if (paramArrayOfBoolean[locale.f()] == 0) {
          parambb.add(locale);
        }
      }
      if (i1 == 0)
      {
        if (m(locale)) {
          a(locale, paramArrayOfBoolean, parambb);
        }
        localw.f();
      }
    } while (!bool);
  }
  
  private bb d(bb parambb)
  {
    return e(parambb, null);
  }
  
  private bb e(bb parambb, e parame)
  {
    int i1 = v;
    boolean bool = u;
    bb localbb = new bb();
    boolean[] arrayOfBoolean = new boolean[this.k.j()];
    w localw = parambb.l();
    do
    {
      if (!localw.e()) {
        break;
      }
      arrayOfBoolean[w(localw.d()).f()] = true;
      if (i1 != 0) {
        break label100;
      }
      localw.f();
      if (bool) {
        break label96;
      }
    } while (!bool);
    if (i1 == 0)
    {
      parame = w(parame);
      label96:
      label100:
      localw = parambb.l();
    }
    label181:
    do
    {
      if (!localw.e()) {
        break;
      }
      e locale1 = w(localw.d());
      e locale2 = x(locale1);
      if (locale2 != parame) {}
      while (i1 != 0)
      {
        if (bool) {
          break label181;
        }
        if (arrayOfBoolean[locale2.f()] == 0)
        {
          locale2 = x(locale2);
          if (!bool) {
            break;
          }
        }
      }
      if (arrayOfBoolean[locale2.f()] == 0) {
        localbb.add(localw.d());
      }
      localw.f();
    } while (!bool);
    return localbb;
  }
  
  private void f(bb parambb, e parame)
  {
    int i2 = v;
    boolean bool = u;
    a.c.q localq = null;
    if (parame == null) {
      localq = j();
    } else if ((i2 != 0) || (l(parame))) {
      localq = o(parame);
    } else {
      localq = parame.g();
    }
    e locale1 = w(parame);
    e locale2 = l(localq);
    boolean[] arrayOfBoolean = new boolean[localq.j()];
    w localw = parambb.l();
    do
    {
      do
      {
        if (!localw.e()) {
          break;
        }
        arrayOfBoolean[localw.d().f()] = true;
        localw.f();
        if (i2 != 0) {
          break label143;
        }
        if (bool) {
          break label136;
        }
      } while (!bool);
    } while (i2 != 0);
    localw = parambb.l();
    label136:
    label143:
    do
    {
      if (!localw.e()) {
        break;
      }
      e locale3 = localw.d();
      e locale4 = x(w(locale3));
      int i1 = 1;
      do
      {
        do
        {
          if (locale4 == locale1) {
            break;
          }
        } while (bool);
        if (locale4 == locale2) {
          break;
        }
        e locale5 = v(locale4);
        i1 = arrayOfBoolean[locale5.f()];
        locale4 = x(locale4);
      } while (!bool);
      if (i2 == 0)
      {
        if (i1 == 0) {
          c(new bb(locale3), parame);
        }
        localw.f();
      }
    } while (!bool);
  }
  
  private void g(bb parambb, e parame)
  {
    int i1 = v;
    boolean bool = u;
    if (parambb.isEmpty()) {
      return;
    }
    e locale1 = w(parame);
    Object localObject = p(parambb.m());
    bb localbb = new bb();
    w localw = parambb.l();
    label152:
    label170:
    label173:
    do
    {
      if (!localw.e()) {
        break;
      }
      e locale2 = localw.d();
      e locale3 = w(locale2);
      e locale4 = p(locale2);
      a.c.d locald = locale3.h();
      if (bool) {
        break label246;
      }
      if (!l(locale2))
      {
        if (i1 != 0) {
          break label152;
        }
        if (!m(locale2)) {}
      }
      else
      {
        if (i1 != 0) {
          break label170;
        }
        this.k.a(locald, locale3, (a.c.d)null, 1, locale1, locale1.i(), 1);
        if (!bool) {
          break label173;
        }
      }
      this.k.a(locald, locale3, (a.c.d)null, 1, locale1, locale1.k(), 0);
      if (i1 == 0)
      {
        if (localObject != locale4) {
          a(new q(this, (byte)8, localObject, localbb));
        }
      }
      else
      {
        localObject = locale4;
        localbb = new bb();
      }
      localbb.add(locale2);
      localw.f();
    } while (!bool);
    if ((i1 == 0) && (!localbb.isEmpty())) {
      label246:
      a(new q(this, (byte)8, localObject, localbb));
    }
  }
  
  private void g(a.c.d paramd)
  {
    f_ localf_ = f(paramd);
    if (localf_ == null) {
      return;
    }
    if ((v != 0) || ((paramd.e() == localf_.a()) && (paramd.f() == localf_.c()))) {
      a(paramd);
    }
  }
  
  private void a(a.c.d paramd, e parame1, e parame2, e parame3, e parame4)
  {
    int i1 = v;
    f_ localf_ = f(paramd);
    if (localf_ == null)
    {
      if ((i1 != 0) || ((parame1 != parame3) || (parame2 != parame4))) {
        b(paramd, parame1, parame2);
      }
      return;
    }
    if ((i1 != 0) || ((paramd.e() == localf_.a()) && (paramd.f() == localf_.c()))) {
      a(paramd);
    }
  }
  
  private void a(a.c.d paramd, boolean paramBoolean, e parame1, e parame2)
  {
    m localm = c();
    if ((v != 0) || (localm != null)) {
      localm.a(paramd, paramBoolean, parame1, parame2);
    }
  }
  
  private final class i_
    extends j.h_
  {
    i_(e parame)
    {
      super(parame);
      this.c = a(parame);
    }
    
    a.c.d a(e parame)
    {
      int i = j.v;
      boolean bool = j.u;
      a.c.d locald = null;
      e locale = (e)j.this.n.get(parame);
      if ((i != 0) || (parame.d() > 0))
      {
        locald = parame.k();
        parame = locald.e();
        locale = (e)j.this.n.get(parame);
        if (parame.d() > 0) {
          if (i == 0)
          {
            if (locale != null)
            {
              if (i != 0) {
                break label129;
              }
              if (j.this.l(locale)) {
                break label132;
              }
            }
            locald = parame.k();
            parame = locald.e();
          }
        }
      }
      label129:
      label132:
      while (i != 0)
      {
        locale = (e)j.this.n.get(parame);
        if (!bool) {
          break;
        }
      }
      return locald;
    }
    
    a.c.d a(a.c.d paramd)
    {
      return paramd.l();
    }
    
    void c()
    {
      int i = j.v;
      boolean bool = j.u;
      if (i == 0) {
        if (this.c == null)
        {
          if (i == 0) {
            if (this.b == this.a)
            {
              this.d = null;
              this.e = false;
              if (i == 0) {
                if (!bool) {
                  return;
                }
              }
            }
            else
            {
              this.c = this.b;
            }
          }
          locale = this.c.e();
          this.d = ((e)j.this.n.get(locale));
          this.e = true;
          this.b = this.c.f().j();
          this.c = a(this.c);
          if (i != 0) {
            break label143;
          }
          if (!bool) {
            return;
          }
        }
      }
      e locale = this.c.e();
      if (i == 0) {
        if (locale.d() > 0)
        {
          label143:
          if (i != 0) {
            break label233;
          }
          if (!j.this.l((e)j.this.n.get(locale))) {
            this.c = a(locale);
          }
        }
      }
      locale = this.c.e();
      this.d = ((e)j.this.n.get(locale));
      this.e = true;
      this.b = this.c.f().j();
      label233:
      this.c = a(this.c);
    }
  }
  
  private final class j_
    extends j.h_
  {
    j_(e parame)
    {
      super(parame);
      this.c = a(parame);
    }
    
    a.c.d a(e parame)
    {
      return parame.i();
    }
    
    a.c.d a(a.c.d paramd)
    {
      return paramd.j();
    }
    
    void c()
    {
      int i = j.v;
      boolean bool = j.u;
      do
      {
        do
        {
          if (this.c != null) {
            break;
          }
          if (bool) {
            break label87;
          }
          if (this.b == this.a)
          {
            this.d = null;
            this.e = false;
            return;
          }
          this.c = this.b;
          this.b = this.c.f().h();
          this.c = a(this.c);
        } while (!bool);
      } while (i != 0);
      label87:
      e locale = this.c.e();
      this.d = ((e)j.this.n.get(locale));
      if (i == 0)
      {
        this.e = true;
        if (locale.d() > 0)
        {
          if (i != 0) {
            break label171;
          }
          if (!j.this.l(this.d))
          {
            this.b = this.c;
            if (i != 0) {
              break label179;
            }
            this.c = a(locale);
            if (!bool) {
              return;
            }
          }
        }
      }
      label171:
      label179:
      this.c = a(this.c);
    }
  }
  
  private abstract class h_
    implements Iterator
  {
    final a.c.d a;
    a.c.d b;
    a.c.d c;
    e d;
    boolean e;
    private final int f;
    private boolean g;
    
    h_(e parame)
    {
      this.a = parame.h();
      this.b = this.a;
      this.f = j.this.q;
      this.g = true;
      this.e = false;
    }
    
    public boolean hasNext()
    {
      b();
      return a();
    }
    
    public Object next()
    {
      b();
      if (j.v == 0)
      {
        if (a()) {
          this.g = true;
        }
      }
      else {
        return this.d;
      }
      throw new NoSuchElementException();
    }
    
    public void remove()
    {
      throw new UnsupportedOperationException();
    }
    
    private boolean a()
    {
      if (j.v == 0) {
        if (this.g)
        {
          c();
          this.g = false;
        }
      }
      return this.e;
    }
    
    private void b()
    {
      if (j.this.q != this.f) {
        throw new ConcurrentModificationException();
      }
    }
    
    abstract a.c.d a(e parame);
    
    abstract a.c.d a(a.c.d paramd);
    
    abstract void c();
  }
  
  class m_
    extends p
  {
    m_() {}
    
    public boolean getBool(Object paramObject)
    {
      return j.this.m((e)paramObject);
    }
    
    public Object get(Object paramObject)
    {
      return j.this.m((e)paramObject) ? Boolean.TRUE : Boolean.FALSE;
    }
  }
  
  class o_
    extends p
  {
    o_() {}
    
    public Object get(Object paramObject)
    {
      return j.this.p((e)paramObject);
    }
  }
  
  static class n_
    extends p
  {
    public Object get(Object paramObject)
    {
      return paramObject;
    }
  }
  
  final class d_
    implements w
  {
    e a;
    a.c.d b;
    
    d_(e parame)
    {
      this.a = parame;
      this.b = parame.i();
    }
    
    public Object j()
    {
      return j.this.n.get(this.b.e());
    }
    
    public void b()
    {
      this.b = this.b.j();
      if ((j.v != 0) || (this.b == null)) {
        this.b = this.a.i();
      }
    }
    
    public void c()
    {
      this.b = this.b.l();
      if ((j.v != 0) || (this.b == null)) {
        this.b = this.a.k();
      }
    }
    
    public void f()
    {
      this.b = this.b.j();
    }
    
    public e d()
    {
      return (e)j.this.n.get(this.b.e());
    }
    
    public boolean e()
    {
      return this.b != null;
    }
    
    public void g()
    {
      this.b = this.b.l();
    }
    
    public int k()
    {
      return this.a.d();
    }
    
    public void h()
    {
      this.b = this.a.i();
    }
    
    public void i()
    {
      this.b = this.a.k();
    }
  }
  
  private class c_
  {
    a.c.q a;
    e c;
    
    c_(a.c.q paramq, e parame)
    {
      this.a = paramq;
      this.c = parame;
    }
    
    a.c.q a()
    {
      return (j.v != 0) || (this.c != null) ? this.c.g() : null;
    }
    
    c_ b()
    {
      a.c.q localq = a();
      return localq != null ? j.this.k(localq) : null;
    }
    
    a.c.q d()
    {
      return this.a;
    }
    
    e e()
    {
      return this.c;
    }
    
    bb a(e parame)
    {
      int i = j.v;
      boolean bool = j.u;
      bb localbb = null;
      if (i == 0) {
        if (parame.g() == this.a)
        {
          localbb = new bb();
          localbb.a(parame);
          return localbb;
        }
      }
      a.c.q localq = parame.g();
      localbb = new bb();
      localbb.a(parame);
      do
      {
        if (localq == this.a) {
          break;
        }
        if (bool) {
          break label125;
        }
        if (localq == j.this.j()) {
          break;
        }
        e locale = j.this.f(localq);
        localbb.a(locale);
        localq = j.this.g(localq);
      } while (!bool);
      if ((i == 0) && (localq == null)) {
        label125:
        localbb = null;
      }
      return localbb;
    }
    
    void c(e parame)
    {
      int i = j.v;
      boolean bool = j.u;
      if (i == 0) {
        if (j.this.l(parame))
        {
          localObject = j.this.o(parame);
          ((a.c.q)localObject).o();
          if (i != 0) {
            break label58;
          }
          j.this.i(parame);
          if (!bool) {
            return;
          }
        }
      }
      label58:
      Object localObject = e();
      c_ localc_ = b();
      label193:
      label195:
      do
      {
        if (localc_ == null) {
          break;
        }
        a.c.q localq = ((e)localObject).g();
        a.c.m localm = ((e)localObject).l();
        if (localm.e()) {}
        do
        {
          a.c.d locald = (a.c.d)localm.j();
          j.f_ localf_ = j.this.f(locald);
          if (i != 0) {
            break label195;
          }
          if (bool) {
            break label193;
          }
          if (((i != 0) || (localf_ != null)) && ((i != 0) || ((localf_.a() == parame) || (localf_.c() == parame)))) {
            localq.a(locald);
          }
          localm.f();
          if (!bool) {
            break;
          }
          localObject = localc_.e();
        } while (i != 0);
        localc_ = localc_.b();
      } while (!bool);
    }
  }
  
  class e_
    implements u
  {
    e_() {}
    
    public void a(cb paramcb)
    {
      int i = j.v;
      boolean bool = j.u;
      if (i == 0) {}
      Object localObject1;
      Object localObject2;
      Object localObject3;
      e locale1;
      switch (paramcb.a())
      {
      case 12: 
        j.this.a(new q(j.this, (byte)10, null, null));
        if (i == 0) {
          if (!bool) {
            return;
          }
        }
      case 13: 
        if (i == 0)
        {
          j.this.a(new q(j.this, (byte)11, null, null));
          if (!bool) {
            return;
          }
        }
      case 2: 
        localObject1 = (e)paramcb.b();
        if (i == 0) {
          if (j.this.m((e)localObject1))
          {
            j.this.b(new bb(j.this.r((e)localObject1)));
            j.this.i((e)localObject1);
          }
        }
        localObject2 = j.this.p((e)localObject1);
        if (i == 0) {
          if (j.this.m((e)localObject2)) {
            j.this.c(new bb((e)localObject1), j.this.f(paramcb.c()));
          }
        }
        localObject3 = j.this.k(paramcb.c());
        ((j.c_)localObject3).c((e)paramcb.b());
        j.this.a(new q(j.this, (byte)1, paramcb.c(), paramcb.b()));
        if (i == 0) {
          if (!bool) {
            return;
          }
        }
      case 3: 
        localObject1 = (e)paramcb.b();
        localObject2 = (e)j.this.m.get(localObject1);
        j.this.k.a((e)localObject2);
        j.this.m.remove(localObject1);
        if (i == 0) {
          if (!bool) {
            return;
          }
        }
      case 0: 
      case 6: 
        localObject1 = (e)paramcb.b();
        localObject2 = paramcb.c();
        localObject3 = (e)j.this.l.get(localObject2);
        locale1 = j.this.k.i();
        j.this.m.put(localObject1, locale1);
        j.this.n.a(locale1, localObject1);
        j.this.k.a(locale1, (e)localObject3);
        if (i == 0)
        {
          j.this.a(new q(j.this, (byte)0, paramcb.c(), paramcb.b()));
          if (!bool) {
            return;
          }
        }
      case 11: 
        localObject1 = (bb)paramcb.b();
        if ((i != 0) || (((bb)localObject1).size() > 0))
        {
          localObject2 = ((bb)localObject1).m().g();
          localObject3 = paramcb.c();
          locale1 = j.this.f((a.c.q)localObject2);
          e locale2 = j.this.f((a.c.q)localObject3);
          e locale4;
          e locale5;
          a.c.d locald;
          if (i == 0) {
            if (j.this.b(locale2, locale1))
            {
              locale3 = j.this.w(locale1);
              localbb = j.this.d((bb)localObject1);
              localw = localbb.l();
              label735:
              do
              {
                if (!localw.e()) {
                  break;
                }
                locale4 = localw.d();
                locale5 = j.this.w(locale4);
                locald = locale5.h();
                if (i != 0) {
                  break label789;
                }
                if (bool) {
                  break label756;
                }
                if (i == 0)
                {
                  if (j.this.l(locale4)) {
                    j.this.k.a(locald, locale5, (a.c.d)null, 1, locale3, locale3.i(), 1);
                  }
                }
                else
                {
                  if (i != 0) {
                    continue;
                  }
                  if (!bool) {
                    break label735;
                  }
                }
                j.this.k.a(locald, locale5, (a.c.d)null, 1, locale3, locale3.k(), 0);
                localw.f();
              } while (!bool);
              if (i != 0) {
                break label818;
              }
              label756:
              j.this.a(new q(j.this, (byte)3, j.this.v(j.access$800(j.this, locale3)), localbb));
              label789:
              if (i != 0) {
                break label827;
              }
              if (!bool) {
                return;
              }
            }
          }
          e locale3 = j.this.w(j.this.p(locale2));
          label818:
          bb localbb = j.this.d((bb)localObject1);
          label827:
          w localw = localbb.l();
          label951:
          label974:
          do
          {
            if (!localw.e()) {
              break;
            }
            locale4 = localw.d();
            locale5 = j.this.w(locale4);
            locald = locale5.h();
            if (bool) {
              break label995;
            }
            if (i == 0)
            {
              if (!j.this.l(locale4))
              {
                if (i != 0) {
                  break label951;
                }
                if (!j.this.m(locale4)) {}
              }
              else
              {
                j.this.k.a(locald, locale5, (a.c.d)null, 1, locale3, locale3.i(), 1);
              }
            }
            else
            {
              if (i != 0) {
                continue;
              }
              if (!bool) {
                break label974;
              }
            }
            j.this.k.a(locald, locale5, (a.c.d)null, 1, locale3, locale3.k(), 0);
            localw.f();
          } while (!bool);
          if (i == 0) {
            label995:
            j.this.a(new q(j.this, (byte)3, (a.c.q)localObject3, localbb));
          }
        }
        break;
      }
    }
  }
  
  private static final class f_
  {
    e a;
    e b;
    Map c;
    
    f_(e parame1, e parame2)
    {
      if (j.v == 0) {
        if (parame1 == null) {
          throw new IllegalArgumentException("source == null");
        }
      }
      if (parame2 == null) {
        throw new IllegalArgumentException("target == null");
      }
      this.a = parame1;
      this.b = parame2;
    }
    
    e a()
    {
      return this.a;
    }
    
    e c()
    {
      return this.b;
    }
    
    Object a(String paramString, Object paramObject)
    {
      if (j.v == 0) {
        if (this.c == null) {
          this.c = new HashMap();
        }
      }
      return this.c.put(paramString, paramObject);
    }
    
    Object a(String paramString)
    {
      if (j.v == 0) {}
      return this.c == null ? null : this.c.get(paramString);
    }
    
    Object c(String paramString)
    {
      if (j.v == 0) {}
      return this.c == null ? null : this.c.remove(paramString);
    }
    
    public String toString()
    {
      return "source = " + this.a + "  target = " + this.b;
    }
  }
  
  private static final class g_
    implements j.k_
  {
    private final j.f_ c;
    
    g_(j.f_ paramf_)
    {
      this.c = paramf_;
    }
    
    public e a()
    {
      return this.c.a();
    }
    
    public e b()
    {
      return this.c.c();
    }
    
    public Object a(String paramString)
    {
      return this.c.a(paramString);
    }
    
    public Object b(String paramString)
    {
      return this.c.c(paramString);
    }
    
    public Object a(String paramString, Object paramObject)
    {
      return this.c.a(paramString, paramObject);
    }
  }
  
  public static abstract interface k_
  {
    public static final String a = "HierarchyManager.InterEdgeData.SOURCE_PORT";
    public static final String b = "HierarchyManager.InterEdgeData.TARGET_PORT";
    
    public abstract e a();
    
    public abstract e b();
    
    public abstract Object a(String paramString);
    
    public abstract Object b(String paramString);
    
    public abstract Object a(String paramString, Object paramObject);
  }
  
  public static abstract interface l_
  {
    public abstract void a(e parame);
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.j.a.j

 * JD-Core Version:    0.7.0.1

 */